$(function () {

    // // TODO 注册表单提交
    $(".register").click(function (e) {
        // alert(1111)
        var username = $("#username").val();
        var phone = $("#phone").val();
        var password = $("#password").val();
        var password2  = $("#password2").val();
        var allow  = $("#allow").val();
        // alert(phone);
        var param = {'username': username, 'phone':phone,'password': password,'password2':password2,'allow':allow};

        // if (!allow){
        //     this.error_allow = true;
        // }else{
        //     this.error_allow = false;
        // }
        if (!username) {
            // $("#login-mobile-err").show();
            // return;
            alert('用户名不能为空')
        }
        if (!phone) {
            // $("#login-mobile-err").show();
            // return;
            alert('手机号不能为空')
        }

        if (!password) {
            // $("#login-password-err").show();
            // retrn;
            alert('密码不能为空')

        }
        if (!password2) {
            // $("#login-password-err").show();
            // retrn;
            alert('确认密码不能为空')

        }

        if (password!=password2) {
            alert('两次密码不一致')
        }

        // 发起注册请求
        $.ajax({
            type: "post",
            dataType: 'json',
            contentType: "application/json",
            cache: false,
            data: JSON.stringify(param),
            success:function (data) {
                if (data.code== "0"){
                    //刷新当前界面
                    console.log('注册成功');
                    window.location.href = '/'
                }else{
                    alert(data.message)
                }
            },
            error:function (e) {
                alert('网络不好，注册失败')

            }
        })

    });


    // TODO 登录按钮点击
    $(".login").click(function (e) {
        // 阻止默认提交操作

        // 取到用户输入的内容
        var username = $("#username").val();
        var password = $("#password").val();
        var remember = $("#remember").val();


        var param = {'username': username, 'password': password,'remember':remember};

        if (!username) {
            // $("#register-mobile-err").show();
            // return;
             alert('用户名不能为空')

        }
        if (!password) {
            // $("#register-password-err").html("请填写密码!");
            // $("#register-password-err").show();
            alert('请输入密码');
            return;
        }

        if (password.length < 6) {
            //     $("#register-password-err").html("密码长度不能少于6位");
            //     $("#register-password-err").show();
            //     return;
            alert("密码长度不能少于6位")
        }

        // 发起注册请求
        // 发起登录请求
        $.ajax({
            type: "post",
            dataType: 'json',
            contentType: "application/json",
            cache: false,
            data: JSON.stringify(param),
            success:function (data) {
                if (data.code == "0"){
                    //刷新当前界面
                    console.log('登录成功');
                    window.location.href = '/'
                }else{
                    alert(data.message)
                }
            },
            error:function (e) {
                alert('网络不好，登录失败')

            }
        })

    });

    generateImageCode()
});
var imageCodeId = ""

// TODO 生成一个图片验证码的编号，并设置页面中图片验证码img标签的src属性
function generateImageCode() {
    // alert(111111111)
    // 1. 生成一个编号
    // 严格一点的使用uuid保证编号唯一， 不是很严谨的情况下，也可以使用时间戳
    imageCodeId = generateUUID();

    // 2. 拼接验证码地址
    var imageCodeUrl = "/image_code/?code_id=" + imageCodeId;
    console.log('imageCodeUrl---' + imageCodeUrl)
    // 3. 设置页面中图片验证码img标签的src属性
    $("#yzm").attr("src", imageCodeUrl)
}

function generateUUID() {
    var d = new Date().getTime();
    if (window.performance && typeof window.performance.now === "function") {
        d += performance.now(); //use high-precision timer if available
    }
    var uuid = 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, function (c) {
        var r = (d + Math.random() * 16) % 16 | 0;
        d = Math.floor(d / 16);
        return (c == 'x' ? r : (r & 0x3 | 0x8)).toString(16);
    });
    return uuid;
}
// TODO 发送短信验证码
function sendSMSCode() {
    alert(22222)
    var phone = $("#phone").val();
    var image_code = $("input[name=image_code]").val();
    // 校验参数，保证输入框有数据填写
    $("#send_phone_code").removeAttr("onclick");

    // TODO 发送短信验证码
    $.ajax({
        url:'/sms_codes/?mobile='+phone+'&uuid='+imageCodeId +'&image_code='+image_code,
        type: 'get',
        //把js对象转为json格式的字符串
        contentType: "application/json",
        dataType: 'json',
        success: function (data) {
            // console.log('data--' + data)
            if (data.errno == '0') {
                //    开始显示倒计时60秒
                var num = 60
                var t = setInterval(function () {
                    console.log('num--' + num)
                    if (num == 1) {
                        //倒计时 到最后了
                        clearInterval(t)
                        $('#send_phone_code').html('获取短信验证码')
                        //恢复点击
                        $("#send_phone_code").attr("onclick", "sendSMSCode();");

                    } else {
                        //倒计时每次减1
                        num -= 1;
                        $('#send_phone_code').html(num + '秒')
                    }
                }, 1000)

            } else {
                // 表示后端出现了错误，可以将错误信息展示到前端页面中
                // $("#register-sms-code-err").html(data.errmsg);
                // $("#register-sms-code-err").show();
                // 将点击按钮的onclick事件函数恢复回去
                $("#send_phone_code").attr("onclick", "sendSMSCode();");
                // 如果错误码是4004，代表验证码错误，重新生成验证码
                if (data.errno == "4004") {
                    generateImageCode()
                }
            }
        },
        error: function (e) {
            alert('网络不好，稍后再发')
        }
    })
}
